Amazon Route 53 で新しくサポートされた HTTPSリソースレコードで HTTP/3対応をDNSレベルで最適化してみた
2024年10月30日、Amazon Route 53で新しい4つのDNSレコードタイプ(SVCB、HTTPS、SSHFP、TLSA)のサポートが発表されました。
今回、新しくサポートされた HTTPSリソースレコード の設定と、確認を試みる機会がありましたので、紹介させて頂きます。
Route53レコードタイプ
追加されたレコード
- HTTPS - 安全な接続のための構成情報をクライアントに配信
- SVCB - サービスエンドポイントへのアクセス拡張機能情報
- TLSA - TLSサーバー証明書/公開キーの関連付け(DNSSEC必須)
- SSHFP - SSHキーフィンガープリントの指定(DNSSEC必須)
従来からのレコード
- A - IPv4アドレスとAWSリソースへのルーティング
- AAAA - IPv6アドレスとAWSリソースへのルーティング
- CNAME - 別のドメインおよびAWSリソースへのルーティング
- MX - メールサーバーの指定
- TXT - メール送信者の検証とアプリケーション固有の値
- PTR - IPアドレスとドメイン名のマッピング
- SRV - アプリケーション固有のサーバー識別
- SPF - 非推奨
- NAPTR - DDDSアプリケーション用
- CAA - ドメインのSSL/TLS証明書作成のCA制限
- NS - ホストゾーンのネームサーバー
- DS - 委任署名、DNSSECの信頼チェーン確立用
Route53
作成画面
HTTPSレコードの値として
1 . alpn=h3,h2
を設定したレコードを追加しました。
レコード一覧
設定パラメータの説明
HTTPSレコードの値 1 . alpn=h3,h2
の内訳:
-
SvcPriority (1)
- 優先度を示す値(1-65535)
- 数値が小さいほど優先度が高い
- 0を設定した場合エイリアスモード。今回は1を指定してサービスモードで利用
-
TargetName (.)
- 「.」は自身を示し、A/AAAAレコードを参照する指定
-
SvcParams (alpn=h3,h2)
- ALPNはプロトコルネゴシエーションのパラメータ
- h3: HTTP/3プロトコル(優先)
- h2: HTTP/2プロトコル(フォールバック)
確認
drill コマンドを含む ldnsutils パッケージが利用可能な Ubuntu環境を利用しました。
- AMI: ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-20240927
drill コマンド
「ldnsutils」をインストール
sudo apt-get update
sudo apt-get install ldnsutils
パス確認
$ which drill
/usr/bin/drill
追加したHTTPSレコードを確認
$ drill https dev.classmethod.jp
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 18896
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; dev.classmethod.jp. IN HTTPS
;; ANSWER SECTION:
dev.classmethod.jp. 60 IN HTTPS 1 . alpn=h3,h2
;; AUTHORITY SECTION:
;; ADDITIONAL SECTION:
;; Query time: 13 msec
;; SERVER: 127.0.0.53
;; WHEN: Thu Oct 31 15:30:32 2024
;; MSG SIZE rcvd: 61
まとめ
Amazon Route 53 で新しくサポートされた HTTPSリソースレコードを利用する事で、HTTPSレコードに対応したブラウザからの接続時のネゴシエーションの最適化が期待できます。
また、将来的に HTTPSレコードの普及が進むことで、ZoneApex で CNAMEが利用できない制限の回避として、エイリアスモードとしたHTTPSレコードが利用できる事にも期待したいと思います。
参考